Automatic call distribution systems are known. Such systems are typically used in an organizational context within private branch telephone exchanges (PBXS)as a means of distributing telephone calls among a group of agents of the organization. While the automatic call distributor (ACD) may be a separate part of the PBX, often the ACD is integrated into and is an indistinguishable part of the PBX.
Often the organization disseminates a single telephone number to its customers and to the public in general as a means of contacting the organization. As calls are directed to the organization from the public switch telephone network (PSTN), the automatic call distribution system directs the calls to its agents based upon some algorithm, typically based upon availability. For example, where all agents are consider equal, the ACD may distribute the calls based upon which agent position (telephone) has been idle the longest.
In order to distribute incoming calls from the PSTN to the available agents, the interaction of a controlling computer with a switching fabric of the PBX and ACD becomes essential. Often a connection to a local PSTN is in the form of a number of trunk connections. Each of the trunk connections is monitored by the controller for incoming calls. Where a call is detected, the controller searches for and selects an idle agent. Upon selecting an agent, the controller commands the switch to form a connection between the incoming trunk and selected agent.
In more complicated systems, the organization may use a number of telephone numbers to identify different individuals and functions within the organization. Each telephone number may be assigned to a particular incoming trunk or group of incoming trunk lines. As such, the controller may be required to recognize a call target based upon an identity of an incoming trunk line and route the call accordingly.
In other systems, the ACD of an organization may receive calls directed to different call targets over the same trunk lines. In such a case, the call target may be identified to the ACD by a pulse code modulated (PCM) signal transferred from the PSTN to the controller of the ACD by a dialed number identification service (DNIS) operating from within the PSTN.
In systems associated with service organizations, where many calls are received and handled by many agents, it may be important for an agent to have ready access to customer files. In such a situation, a database is maintained of existing customers. Customer records may be displayed on agent terminals as the agents converse with specific customers. In some cases, the customer may be identified to the database for display of records on the terminal by the agent entering a customer identifier into a keyboard associated with the terminal. Alternatively, the controller of the ACD may transfer an identifier of the customer to the database based upon an automatic number identification (ANI) facility, operating from within the PSTN.
Where ANI is used, the controller of the ACD receives the ANI digits (identifying the caller via the caller's telephone number) at the same time the call arrives from the PSTN. Upon selecting an agent, the controller may transfer the call to a queue for the selected agent or directly to the selected agent. At the same time that the call is delivered to the agent, the controller sends an identifier of the selected agent and ANI number of the customer to a controller of the database (the host). The host, in turn, displays the customer records via a computer monitor of the selected agent at the same time the call is delivered.
Calls are typically placed in a queue when insufficient agents are available to answer the calls as they appear on incoming trunks. Messages are often delivered to callers in the queue as they wait for the next available agent.
Queues are often used as a means of averaging a call load to a group of agents. The message delivered to the caller is often sufficient to maintain the caller's interest as he waits and may even be used to solicit information from the caller.
While call queues are effective, they are expensive to use. Called numbers on incoming trunks are often 800 numbers, paid for by the called party. Where a call is answered and a caller is placed in a queue, charges for that call immediately begin to accumulate.
In general, where the time spent by each caller in a queue can be reduced, the expense of incoming calls to an 800 number can also be reduced. Past efforts to reduce queue time have included the imposition of a fixed delay on the answering of each call. The fixed delay may be imposed by either a predetermined time period or by delivery of a predetermined number of ringbacks to the caller.
While the prior art use of delay has been effective, the use of a fixed delay is not appropriate in all situations. For instance when the time period between agent availability is shorter then the fixed delay, the agent may remain idle until the fixed delay expires. Further, since incoming calls are to the organization, not to individual agents, the use of a busy signal is not appropriate and would cause some callers to hang up. Accordingly, a need exists for means of dynamically linking call acceptance to agent availability.